<template>
	<view class="work-container">
		<uni-table border stripe emptyText="暂无更多数据">
			<!-- 表头行 -->
			<uni-tr>
				<uni-th align="center">文件名</uni-th>
				<uni-th align="center">大小</uni-th>
				<uni-th width="50" align="center">操作</uni-th>
			</uni-tr>
			<!-- 表格数据行 -->
			<uni-tr v-for="(item, index) in files" :key="item.id">
				<uni-td>{{ item.name }}</uni-td>
				<uni-td>{{ item.size }}</uni-td>
				<uni-td align="center">
					<view @click="downloadFile(item.url)">
						下载
					</view>
				</uni-td>
			</uni-tr>
		</uni-table>
	</view>
</template>

<script>
	import {
		parseTime
	} from "@/utils/ruoyi.js"
	import {
		updatafile
	} from "@/api/system/user.js"

	export default {
		data() {
			return {
				files: [],
				downloadprogress: ""
			}
		},
		onLoad() {
			var _this = this;
			updatafile().then(response => {
				_this.files = response.data.list
			})
		},
		onUnload() {

		},
		methods: {
			downloadFile(fileurl) {
				var _this = this
				uni.showLoading({
					title: '下载中：' + _this.downloadprogress
				});

				var downloadTask = uni.downloadFile({
					url: fileurl,
					fail: (res) => {
						uni.hideLoading();
						_this.$modal.showToast('下载失败！' + res)
						console.log(fileurl)
					},
					success: (res) => {
						uni.hideLoading();
						if (res.statusCode === 200) {
							_this.$modal.showToast('下载成功！')
						}
						_this.$modal.showToast('APK 安装成功，应用需要重启')
						plus.runtime.install(
							res.tempFilePath, {},
							function() {
								console.log('APK 安装成功，应用需要重启');
								plus.runtime.restart(); // 并非所有整包安装后都能自动重启，需视情况而定
							},
							function(error) {
								console.error('安装失败：' + JSON.stringify(error));
							}
						);
					},
				});
				downloadTask.onProgressUpdate((res) => {
					_this.downloadprogress = res.progress;
					// $modal.showToast('下载进度：' + res.progress)
					// console.log('下载进度' + res.progress);
					// console.log('已经下载的数据长度' + res.totalBytesWritten);
					// console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
				});
			},
		}
	}
</script>

<style lang="scss">
	button {
		margin-bottom: 10px;
	}

	.work-container {
		padding: 15px;
	}

	.title-text {
		font-size: 28rpx;
		white-space: normal;
		/* 允许换行 */
		word-wrap: break-word;
		/* 允许长单词或 URL 换行 */
		/* 如果父容器有固定宽度，确保宽度生效 */
	}

	.multiline-text {
		font-size: 24rpx;
		color: #777;
		white-space: normal;
		/* 允许换行 */
		word-wrap: break-word;
		/* 允许长单词或 URL 换行 */
		/* 如果父容器有固定宽度，确保宽度生效 */
	}
</style>